//
// Created by 李传智 on 2018/4/14.
//

#ifndef ANDSDK_IPLAYERBUILDER_H
#define ANDSDK_IPLAYERBUILDER_H

class IDemux;

class IDecode;

class IResample;

class IVideoView;

class IAudioPlay;

class IPlayer;

class IRecorder;

class IPlayerBuilder {

public:

    virtual IPlayer *buildPlayer(unsigned char index = 0);

protected:

    virtual IDemux *createDemux() = 0;

    virtual IDecode *createDecode() = 0;

    virtual IResample *createResample() = 0;

    virtual IVideoView *createVideoView() = 0;

    virtual IAudioPlay *createAudioPlay() = 0;

    virtual IPlayer *createPlayer(unsigned char index = 0) = 0;

    virtual IRecorder *createRecorder() = 0;
};


#endif //ANDSDK_IPLAYERBUILDER_H
